LeetCode next permutation
这道题的讨论区解答很详细, 特别注意一下 reverse(nums.begin(), nums.end()) 参数是迭代器。
1 | class Solution { |
LeetCode Permutation
使用 vector& 与 第二次swap
整个过程只存在一个nums,改变一个nums的操作,就相当于整个流程中的nums都做了相同的变化,因此需要在DFS后再进行一次交换。
1 | class Solution { |
使用 传值 并去掉第二次的交换
每次调用DFS都会copy一个nums,因此不用担心调用DFS会对之前的nums有影响,也就不用在调用完递归函数后再进行交换了。
1 | class Solution { |